Page({
  data: {
    selectedTab: 'detail',
    tabContent: [],
    question: [],
    pageNum: 1,
    pageSize: 8,
    moreshow: false,
    noMoreData: false,
    inputContent: '',  // 用于存储输入框的内容
  },

  // 页面加载时调用的函数
  onLoad: function() {
    this.loadPsychologicalKnowledge('detail');
  },

  // 选择选项卡
  selectTab: function (e) {
    const tab = e.currentTarget.dataset.tab;
    this.setData({
      selectedTab: tab,
      tabContent: [],
      pageNum: 1,
      noMoreData: false,
    });

    this.loadPsychologicalKnowledge(tab);
  },

  // 根据选中的标签加载数据
  loadPsychologicalKnowledge: function(tab) {
    const { pageNum, pageSize } = this.data;
    let url = '';

    switch (tab) {
      case 'detail':
        url = `/q?pageNum=${pageNum}&pageSize=${pageSize}`;
        break;
      case 'list':
        url = `/r?pageNum=${pageNum}&pageSize=${pageSize}`;
        break;
      case 'teacher':
        url = `/t?pageNum=${pageNum}&pageSize=${pageSize}`;
        break;
    }

    wx.request({
      url: 'http://localhost:9090/psychologicalQaQuestions' + url,
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.list) {
          const newTabContent = this.data.tabContent.concat(res.data.list);
          this.setData({
            tabContent: newTabContent,
            noMoreData: res.data.list.length < pageSize,
          });
        }
      },
      fail: (err) => {
        console.error(err);
        wx.showToast({ title: '加载失败', icon: 'none' });
      },
      complete: () => {
        this.setData({ moreshow: false });
      },
    });
  },

  // 点击问题跳转到问题详情页面
  goToDetailPage: function(e) {
    const questionId = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/questionDetail/questionDetail?id=${questionId}`,
    });
  },

  // 上拉加载更多
  onReachBottom: function() {
    if (this.data.noMoreData) return;

    this.setData({
      pageNum: this.data.pageNum + 1,
      moreshow: true,
    });

    this.loadPsychologicalKnowledge(this.data.selectedTab);
  },

  // 输入框内容变化时的处理
  onInputChange: function(e) {
    this.setData({
      inputContent: e.detail.value,
    });
  },

  // 提交问题
  submitQuestion: function() {
    const inputContent = this.data.inputContent.trim();
  
    if (!inputContent) {
      wx.showToast({
        title: '问题内容不能为空',
        icon: 'none',
      });
      return;
    }
  
    const vipuser = wx.getStorageSync('vipuser'); // 获取本地存储的用户信息
  
    if (!vipuser) {
      wx.showToast({
        title: '请先登录',
        icon: 'none',
      });
      return;
    }
  
    // 获取当前时间，格式化为 yyyy-MM-dd HH:mm:ss 格式
    const currentTime = this.formatDate(new Date());
  
    // 构造请求数据
    const questionData = {
      questionTitle: inputContent,
      memberId: vipuser.memberId,  // 使用本地存储的用户ID
      publishTime: currentTime,    // 当前时间
    };
  
    // 调用后端接口添加问题
    wx.request({
      url: 'http://localhost:9090/psychologicalQaQuestions',
      method: 'POST',
      data: questionData, // 发送数据
      header: {
        'Content-Type': 'application/json', // 确保发送的数据是 JSON 格式
      },
      success: (res) => {
        console.log(res);  // 打印返回数据，检查格式
        if (res.data && res.data.code === 200) {
          wx.showToast({
            title: '问题提交成功',
            icon: 'success',
          });
  
          this.setData({
            inputContent: '', // 清空输入框
            pageNum: 1,       // 重置页码为 1
            tabContent: [],   // 清空当前页的内容
          });
  
          // 重新加载数据（第一页）
          this.loadPsychologicalKnowledge(this.data.selectedTab); // 确保从第一页开始加载
        } else {
          wx.showToast({
            title: res.data.msg || '提交失败，请重试',  // 使用msg作为错误信息
            icon: 'none',
          });
        }
      },
      fail: (err) => {
        wx.showToast({
          title: '提交失败，请重试',
          icon: 'none',
        });
        console.error(err);
      },
    });
  },
  
  
  
  // 时间格式化方法，返回 'yyyy-MM-dd HH:mm:ss' 格式
  formatDate: function(date) {
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0'); // 月份需要加1并格式化为两位
    const day = date.getDate().toString().padStart(2, '0');
    const hours = date.getHours().toString().padStart(2, '0');
    const minutes = date.getMinutes().toString().padStart(2, '0');
    const seconds = date.getSeconds().toString().padStart(2, '0');
  
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  },
});
